package com.sg.controller.bff;

import com.sg.service.biz.bff.DashboardTargetContentService;
import com.sg.dto.biz.bff.req.*;
import com.sg.dto.biz.bff.res.*;
import com.sg.common.ro.OkrResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author ：
 * @version 1.0
 * @date ：
 */
@Api(value = "DashboardTargetContent", tags = {"DashboardTargetContent"})
@RestController
// @RequestMapping("/oms/dashboardTargetContent/")
public class DashboardTargetContentController {

    @Autowired
    DashboardTargetContentService dashboardTargetContentService;

    /**
     * B4查询个人指标排行列表
     * gen by moon at 4/3/2024, 12:01:59 AM
     */
    @PostMapping("/oms/dashboardTargetContent/queryMemberObjectiveRankingList")
    @ApiOperation(value = "B4查询个人指标排行列表", response = OkrResult.class)
    public OkrResult<BffQueryMemberObjectiveRankingListRespDto> queryMemberObjectiveRankingList(@RequestBody(required = false) @Validated BffQueryMemberObjectiveRankingListReqDto reqDTO) {
        return OkrResult.success(dashboardTargetContentService.queryMemberObjectiveRankingList(reqDTO));
    }

    /**
     * B3查询目标看板周期信息
     * gen by moon at 4/7/2024, 3:35:53 PM
     */
    @PostMapping("/oms/dashboardTargetContent/queryTargetSpectacularCycleInfoDetail")
    @ApiOperation(value = "B3查询目标看板周期信息", response = OkrResult.class)
    public OkrResult<BffQueryTargetSpectacularCycleInfoDetailRespDto> queryTargetSpectacularCycleInfoDetail(@RequestBody(required = false) @Validated BffQueryTargetSpectacularCycleInfoDetailReqDto reqDTO) {
        return OkrResult.success(dashboardTargetContentService.queryTargetSpectacularCycleInfoDetail(reqDTO));
    }

    /**
     * B查询规划网盘重点关注列表
     * gen by moon at 5/13/2024, 2:55:55 AM
     */
    @PostMapping("/oms/dashboardTargetContent/queryKeyFocusList")
    @ApiOperation(value = "B查询规划网盘重点关注列表", response = OkrResult.class)
    public OkrResult<BffQueryKeyFocusListRespDto> queryKeyFocusList(@RequestBody(required = false) @Validated BffQueryKeyFocusListReqDto reqDTO) {
        return OkrResult.success(dashboardTargetContentService.queryKeyFocusList(reqDTO));
    }

    /**
     * B3查询汇报任务明细列表
     * gen by moon at 7/4/2024, 1:00:39 AM
     */
    @PostMapping("/oms/dashboardTargetContent/queryReportTaskDetailsList")
    @ApiOperation(value = "B3查询汇报任务明细列表", response = OkrResult.class)
    public OkrResult<BffQueryReportTaskDetailsListRespDto> queryReportTaskDetailsList(@RequestBody(required = false) @Validated BffQueryReportTaskDetailsListReqDto reqDTO) {
        return OkrResult.success(dashboardTargetContentService.queryReportTaskDetailsList(reqDTO));
    }

    /**
     * B3删除重点关注
     * gen by moon at 7/26/2024, 2:18:48 PM
     */
    @PostMapping("/oms/dashboardTargetContent/deleteKeyFocus")
    @ApiOperation(value = "B3删除重点关注", response = OkrResult.class)
    public OkrResult<BffDeleteKeyFocusRespDto> deleteKeyFocus(@RequestBody(required = false) @Validated BffDeleteKeyFocusReqDto reqDTO) {
        return OkrResult.success(dashboardTargetContentService.deleteKeyFocus(reqDTO));
    }

    /**
     * B3新增重点关注
     * gen by moon at 7/26/2024, 2:18:55 PM
     */
    @PostMapping("/oms/dashboardTargetContent/addKeyFocus")
    @ApiOperation(value = "B3新增重点关注", response = OkrResult.class)
    public OkrResult<BffAddKeyFocusRespDto> addKeyFocus(@RequestBody(required = false) @Validated BffAddKeyFocusReqDto reqDTO) {
        return OkrResult.success(dashboardTargetContentService.addKeyFocus(reqDTO));
    }

    /**
     * B3查询重点关注列表
     * gen by moon at 7/26/2024, 2:19:05 PM
     */
    @PostMapping("/oms/dashboardTargetContent/queryKeyFocusBusinessProcessList")
    @ApiOperation(value = "B3查询重点关注列表", response = OkrResult.class)
    public OkrResult<BffQueryKeyFocusBusinessProcessListRespDto> queryKeyFocusBusinessProcessList(@RequestBody(required = false) @Validated BffQueryKeyFocusBusinessProcessListReqDto reqDTO) {
        return OkrResult.success(dashboardTargetContentService.queryKeyFocusBusinessProcessList(reqDTO));
    }

    /**
     * B3批量设置重点关注排序
     * gen by moon at 8/6/2024, 7:52:14 PM
     */
    @PostMapping("/oms/dashboardTargetContent/batchSetKeyFocusOrderNumber")
    @ApiOperation(value = "B3批量设置重点关注排序", response = OkrResult.class)
    public OkrResult<BffBatchSetKeyFocusOrderNumberRespDto> batchSetKeyFocusOrderNumber(@RequestBody(required = false) @Validated BffBatchSetKeyFocusOrderNumberReqDto reqDTO) {
        return OkrResult.success(dashboardTargetContentService.batchSetKeyFocusOrderNumber(reqDTO));
    }
}
